package com.hifar.test.equip.pojo;

import com.baomidou.mybatisplus.annotation.*;
import com.hifar.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.hifar.plat.AopOption.Dict;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import lombok.EqualsAndHashCode;

import java.io.Serializable;

import com.hifar.plat.AopOption.Excel;
import com.hifar.plat.baseModal.pojo.BaseOssFiles;

/**
 * <p>
 * 资源-设备
 * </p>
 *
 * @author wangkepeng
 * @since 2024-12-11 11:58:26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("HF_RES_EQUIP")
@ApiModel(value = "HfResEquip对象", description = "资源-设备")
public class HfResEquip extends BaseModel implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 保养有效状态1有效0无效
     */
    @Excel(name = "保养有效状态1有效0无效", sort = 1)
    @ApiModelProperty(value = "保养有效状态1有效0无效")
    @TableField("MAINTAIN_VALID_STATUS")
    @JSONField(name = "maintainValidStatus")
    private String maintainValidStatus;


    /**
     * 责任ID
     */
    @Excel(name = "责任ID", sort = 1)
    @ApiModelProperty(value = "责任ID")
    @TableField("MANAGER_ID")
    @JSONField(name = "managerId")
    private String managerId;


    /**
     * 设备类型名称(保留)
     */
//    @Excel(name="设备类型名称(保留)",sort=1)
//    @ApiModelProperty(value = "设备类型名称(保留)")
//    @TableField("EQUIP_TYPE_NAME")
//    @JSONField(name = "equipTypeName")
//    private String equipTypeName;

    //图片文件id
    @TableField(exist = false)
    private String imgFileId;

    //附件id
    @TableField(exist = false)
    private String attachFileId;

    /**
     * 更新用户ID
     */
    @Excel(name = "更新用户ID", sort = 1)
    @ApiModelProperty(value = "更新用户ID")
    @TableField(value = "UPDATE_USER_ID", fill = FieldFill.INSERT_UPDATE)
    private String updateUserId;


    /**
     * 启用日期
     */
    @Excel(name = "启用日期", sort = 1)
    @ApiModelProperty(value = "启用日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date startDate;


    /**
     * 软件版本号
     */
    @Excel(name = "软件版本号", sort = 1)
    @ApiModelProperty(value = "软件版本号")
    @TableField("ASSETS_CODE")
    @JSONField(name = "assetsCode")
    private String assetsCode;


    /**
     * 购买日期
     */
    @Excel(name = "购买日期", sort = 1)
    @ApiModelProperty(value = "购买日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @TableField("BUY_TIME")
    @JSONField(name = "buyTime")
    private Date buyTime;


    /**
     * 鉴定日期
     */
    @Excel(name = "鉴定日期", sort = 1)
    @ApiModelProperty(value = "鉴定日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @TableField("CHECK_TIME")
    @JSONField(name = "checkTime")
    private Date checkTime;

    /**
     * 可用基时（设备每天可以时间）(保留)
     */
    @Excel(name = "可用基时（设备每天可以时间）(保留)", sort = 1)
    @ApiModelProperty(value = "可用基时（设备每天可以时间）(保留)")
    private Integer availableTime;


    /**
     * 大屏显示名称(保留)
     */
    @Excel(name = "大屏显示名称(保留)", sort = 1)
    @ApiModelProperty(value = "大屏显示名称(保留)")
    private String largeScreenName;


    /**
     * 设备名称
     */
    @Excel(name = "设备名称", sort = 1)
    @ApiModelProperty(value = "设备名称")
    @TableField("EQUIP_NAME")
    @JSONField(name = "equipName")
    private String equipName;


    /**
     * 检定有效期
     */
    @Excel(name = "检定有效期", sort = 1)
    @ApiModelProperty(value = "检定有效期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date checkValid;

    /**
     * 启用日期
     */
    @Excel(name = "启用日期", sort = 1)
    @ApiModelProperty(value = "启用日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date enableTime;


    /**
     * 规格
     */
    @Excel(name = "规格", sort = 1)
    @ApiModelProperty(value = "规格")
    @TableField("SPECIFICATION")
    @JSONField(name = "specification")
    private String specification;


    /**
     * 设备责任人
     */
    @Excel(name = "设备责任人", sort = 1)
    @ApiModelProperty(value = "设备责任人")
    @TableField("MANAGER_NAME")
    @JSONField(name = "managerName")
    private String managerName;


    /**
     * 设备型号
     */
    @Excel(name = "设备型号", sort = 1)
    @ApiModelProperty(value = "设备型号")
    @TableField("EQUIP_MODEL")
    @JSONField(name = "equipModel")
    private String equipModel;


    /**
     * 备注
     */
    @Excel(name = "备注", sort = 1)
    @ApiModelProperty(value = "备注")
    @TableField("REMARKS")
    @JSONField(name = "remarks")
    private String remarks;


    /**
     * 摄像头ip地址(保留)
     */
    @Excel(name = "摄像头ip地址(保留)", sort = 1)
    @ApiModelProperty(value = "摄像头ip地址(保留)")
    @TableField("CAMERA_IP")
    @JSONField(name = "cameraIp")
    private String cameraIp;


    /**
     * 生产厂家
     */
    @Excel(name = "生产厂家", sort = 1)
    @ApiModelProperty(value = "生产厂家")
    @TableField("FACTORY_NAME")
    @JSONField(name = "factoryName")
    private String factoryName;


    /**
     * 放置地点(保留)
     */
    @Excel(name = "放置地点(保留)", sort = 1)
    @ApiModelProperty(value = "放置地点(保留)")
    @TableField("ADDRESS")
    @JSONField(name = "address")
    private String address;


    /**
     * 内部名称(保留)
     */
    @Excel(name = "内部名称", sort = 1)
    @ApiModelProperty(value = "内部名称")
    @TableField("INNER_NAME")
    @JSONField(name = "innerName")
    private String innerName;


    /**
     * 检定编号
     */
    @Excel(name = "检定编号", sort = 1)
    @ApiModelProperty(value = "检定编号")
    @TableField("CHECK_CODE")
    @JSONField(name = "checkCode")
    private String checkCode;


    /**
     * 出厂编号
     */
    @Excel(name = "出厂编号", sort = 1)
    @ApiModelProperty(value = "出厂编号")
    @TableField("LEAVE_CODE")
    @JSONField(name = "leaveCode")
    private String leaveCode;


    /**
     * 设备使用范围：1试验设备 2测试设备(保留)
     */
    @Excel(name = "设备使用范围：1试验设备 2测试设备(保留)", sort = 1)
    @ApiModelProperty(value = "设备使用范围：1试验设备 2测试设备(保留)")
    @Dict(dictCode = "hf_res_equip_use")
    @TableField("EQUIP_USE")
    @JSONField(name = "equipUse")
    private String equipUse;


    @Excel(name = "设备分类（数据字典equip_classify_type）", sort = 1)
    @ApiModelProperty(value = "设备分类（数据字典equip_classify_type）")
    @Dict(dictCode = "equip_classify_type")
    @TableField("CLASSIFY_TYPE_CODE")
    @JSONField(name = "classifyTypeCode")
    private String classifyTypeCode;


    /**
     * 设备生产日期
     */
    @Excel(name = "设备生产日期", sort = 1)
    @ApiModelProperty(value = "设备生产日期")
    @TableField("EQUIP_PRODUCED_DATE")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @JSONField(name = "equipProducedDate")
    private Date equipProducedDate;


    /**
     * 鉴定有效状态1有效0无效
     */
    @Excel(name = "鉴定有效状态1有效0无效", sort = 1)
    @ApiModelProperty(value = "鉴定有效状态1有效0无效")
    @TableField("CHECK_VALID_STATUS")
    @JSONField(name = "checkValidStatus")
    private String checkValidStatus;


    /**
     * 检定周期值
     */
    @Excel(name = "检定周期值", sort = 1)
    @ApiModelProperty(value = "检定周期值")
    @TableField(value = "CHECK_PERIOD_VALUE", updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "checkPeriodValue")
    private Integer checkPeriodValue;


    /**
     * 使用部门名称
     */
    @ApiModelProperty(value = "使用部门名称")
    private String userDeptName;


    /**
     * 保养周期值
     */
    @Excel(name = "保养周期值", sort = 1)
    @ApiModelProperty(value = "保养周期值")
    @TableField(value = "MAINTAIN_PERIOD_VALUE", updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "maintainPeriodValue")
    private Integer maintainPeriodValue;


    /**
     * 状态100正常200故障300停用 900报废
     */
    @Dict(dictCode = "hf_res_equip_status")
    @ApiModelProperty(value = "状态100正常200故障300停用 900报废")
    @TableField("STATUS")
    @JSONField(name = "status")
    private String status;


    /**
     * 使用部门ID
     */
    @ApiModelProperty(value = "使用部门ID")
    private String userDeptId;


    @ApiModelProperty(value = "设备能力")
    @TableField("EQUIP_ABILITY")
    @JSONField(name = "equipAbility")
    private String equipAbility;


    /**
     * 创建用户ID
     */
    @ApiModelProperty(value = "创建用户ID")
    @TableField(value = "CREATE_USER_ID", fill = FieldFill.INSERT)
    private String createUserId;


    /**
     * 设备编号
     */
    @Excel(name = "设备编号", sort = 1)
    @ApiModelProperty(value = "设备编号")
    @TableField("EQUIP_CODE")
    @JSONField(name = "equipCode")
    private String equipCode;


    /**
     * 部门管理
     */
    @ApiModelProperty(value = "部门管理")
    private String deptId;

    /**
     * 排序
     */
    @Excel(name = "排序", sort = 1)
    @ApiModelProperty(value = "排序")
    private Integer rowSort;


    /**
     * 技术参数
     */
    @Excel(name = "技术参数", sort = 1)
    @ApiModelProperty(value = "技术参数")
    private String technology;


    /**
     * 所属部门（跟部门编码保持一致）
     */
    @ApiModelProperty(value = "所属部门（跟部门编码保持一致）")
    private String department;

    /**
     * 开机费用(保留)
     */
    @Excel(name = "开机费用(保留)", sort = 1)
    @ApiModelProperty(value = "开机费用(保留)")
    @TableField("STARTUP_COST")
    @JSONField(name = "startupCost")
    private String startupCost;


    /**
     * 图片URL
     */
    @ApiModelProperty(value = "图片URL")
    private String imgUrl;


    /**
     * 更新用户名称
     */
    @ApiModelProperty(value = "更新用户名称")
    @TableField(value = "UPDATE_USER_NAME", fill = FieldFill.INSERT_UPDATE)
    private String updateUserName;


    /**
     * 保养周期单位  1 日  2 月 3 年
     */
    @Excel(name = "保养周期单位  1 日  2 月 3 年", sort = 1)
    @ApiModelProperty(value = "保养周期单位  1 日  2 月 3 年")
    @TableField(value = "MAINTAIN_PERIOD_UNIT", updateStrategy = FieldStrategy.IGNORED)
    private String maintainPeriodUnit;


    /**
     * 设备类型编号(保留)
     */
    @Excel(name = "设备类型编号(保留) 1气候 2力学 ", sort = 1)
    @Dict(dictCode = "hf_res_equip_type")
    @ApiModelProperty(value = "设备类型编号(保留) 1气候 2力学 ")
    @TableField("EQUIP_TYPE_CODE")
    @JSONField(name = "equipTypeCode")
    private String equipTypeCode;


    /**
     * 鉴定周期单位  1 日  2 月 3 年
     */
    @ApiModelProperty(value = "鉴定周期单位  1 日  2 月 3 年")
    private String checkPeriodUnit;


    /**
     * 计量编号
     */
    @ApiModelProperty(value = "计量编号")
    private String meteringNum;


    /**
     * 保养有效截止日期
     */
    @ApiModelProperty(value = "保养有效截止日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @TableField(value = "MAINTAIN_VALID_DATE", updateStrategy = FieldStrategy.IGNORED)
    private Date maintainValidDate;

    /**
     * 保养日期
     */
    @Excel(name = "保养日期", sort = 1, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "保养日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @TableField(value = "MAINTAIN_DATE", updateStrategy = FieldStrategy.IGNORED)
    private Date maintainDate;


    @ApiModelProperty("设备基时")
    private BigDecimal baseTime;

    @ApiModelProperty("开机费")
    private BigDecimal startCost;

    @ApiModelProperty("设备单价")
    private BigDecimal unitPrice;

    @ApiModelProperty("是否按次收费")
    private String izChargedPerUse;

    @TableField(exist = false)
    List<BaseOssFiles> imgFileList;

    @TableField(exist = false)
    List<BaseOssFiles> attachFileList;

}